package com.yequan.leetcode.interviewquestion.smallestK17_14;

import java.util.PriorityQueue;
import java.util.Queue;

/**
 *
 * //设计一个算法，找出数组中最小的k个数。以任意顺序返回这k个数均可。
 * //
 * // 示例：
 * //
 * // 输入： arr = [1,3,5,7,2,4,6,8], k = 4
 * //输出： [1,2,3,4]
 * //
 * //
 * // 提示：
 * //
 * //
 * // 0 <= len(arr) <= 100000
 * // 0 <= k <= min(100000, len(arr))
 * //
 * // Related Topics 堆 排序 分治算法
 * @author : Administrator
 * @date : 2020/3/28
 */
public class SmallestK {

    public int[] smallestK(int[] arr, int k) {
        Queue<Integer> queue =new PriorityQueue<>();
        int[] res=new int[k];
        for (int num : arr) {
            queue.offer(num);
        }

        for (int i = 0; i < k; i++) {
            res[i]=queue.poll();
        }
        return res;
    }

}
